import { createSlice,  } from "@reduxjs/toolkit";

// 借助 createSlice 创建 reducer、action
const MenuSlice = createSlice({
  name: "menu", // 生成 Action type 的前缀，例如：menu/update
  initialState: {
    value: [
      { "title": "首页", key: 'home' },
      { "title": "home-index", key: 'home-index' }
  ],
  },
  reducers: {
    updateMenu: (state, action) => {
      state.value = action.payload;
    },
  },
});

// Action Creator 用于执行返回描述如何更新 state 的 Action
export const { updateMenu } = MenuSlice.actions;

// 异步 thunk，用于需要在更新数据前异步处理数据的情况
export const updateAsync = (amount) => (dispatch) => {
  setTimeout(() => {
    dispatch(updateMenu(amount));
  }, 1500);
};

// Selector，作为 useSelector 读取数据的函数参数
export const menuSelector = (state) => state.menu.value;

// Reducer，真正执行修改 state 的纯函数
export default MenuSlice.reducer;

